package com.sz.admin.datainfo.pojo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;

/**
 * <p>
 * 司机车辆信息VO
 * </p>
 *
 * @author sz-admin
 * @since 2025-09-17
 */
@Data
@Schema(description = "司机车辆信息VO")
public class DriverVehicleInfoVO {

    @Schema(description = "车辆ID")
    private Long vehicleId;

    @Schema(description = "车辆编号")
    private String vehicleNumber;

    @Schema(description = "车辆名称")
    private String vehicleTitle;

    @Schema(description = "部门ID")
    private Long departmentId;

    @Schema(description = "部门名称")
    private String departmentName;

    @Schema(description = "排班ID")
    private Long scheduleId;

    @Schema(description = "司机用户ID1")
    private Long userId1;

    @Schema(description = "司机用户ID2")
    private Long userId2;

    @Schema(description = "司机用户ID3")
    private Long userId3;

    @Schema(description = "排班名称")
    private String scheduleName;

    @Schema(description = "排班时间1")
    private LocalTime scheduleTime1;

    @Schema(description = "排班时间2")
    private LocalTime scheduleTime2;

    @Schema(description = "排班时间3")
    private LocalTime scheduleTime3;

    @Schema(description = "排班类型")
    private String scheduleType;

    @Schema(description = "监控文件记录列表")
    private List<MonitorFileRecordInfoVO> monitorFileRecords;

    @Schema(description = "监控文件记录总数")
    private Integer monitorFileRecordCount;

    /**
     * 监控文件记录信息VO
     */
    @Data
    @Schema(description = "监控文件记录信息VO")
    public static class MonitorFileRecordInfoVO {

        @Schema(description = "记录ID")
        private Long id;

        @Schema(description = "监控ID")
        private Long monitorId;

        @Schema(description = "原始文件名")
        private String originalFilename;

        @Schema(description = "新文件名")
        private String newFilename;

        @Schema(description = "文件访问URL")
        private String fileUrl;

        @Schema(description = "处理状态")
        private String processStatus;

        @Schema(description = "处理时间")
        private LocalDateTime processTime;

        @Schema(description = "文件标签")
        private String fileTag;

        @Schema(description = "识别出的车牌号码")
        private String carNumber;

        @Schema(description = "OCR识别结果JSON")
        private String carNumberRes;

        @Schema(description = "创建时间")
        private LocalDateTime createTime;
    }
}